/**
 * @(#)Kalendereintrag.java
 * 1.0, 2013-01-24
 */
package de.hdm.gruppenkalender.team04.data;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.sql.Timestamp;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.86FCE68A-4BBB-C77B-3C6B-1A6A587EC45F]
// </editor-fold>
/**
 * Schnittstellenspezifikation eines Kalendereintrags.
 *
 * @author Mathias Bendel (mb167)
 * @author Björn Fichnter (bf023)
 * @author Stefan Hettich (sh176)
 * @author René Kugel (rk044)
 * @author Mark Leonberger (ml072)
 * @author Marta Przybylski (mp070)
 *
 * @version 1.0, 2013-01-24
 *
 * @see KalendereintragImpl
 */
public interface Kalendereintrag extends Remote {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.0175BE94-4536-65DA-E444-6E28F7F0CEDB]
    // </editor-fold> 
    /**
     * Gibt die ID des {@link Kalendereintrag} zurück.
     *
     * @return  int             id
     * @throws  RemoteException
     */
    public int getId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A1F72F46-570C-0880-27D0-224B92BE35E1]
    // </editor-fold> 
    /**
     * Setzt eine neue ID des {@link Kalendereintrag}.
     *
     * @param   id
     * @throws  RemoteException
     */
    public void setId(int id) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.66F0E95F-7FFE-87E3-C4B7-7BFC94BE9A33]
    // </editor-fold> 
    /**
     * Gibt den Start-Zeitpunkt des {@link Kalendereintrag}s zurück.
     *
     * @return  Timestamp       start
     * @throws  RemoteException
     */
    public Timestamp getStart() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.E0FD43ED-FB63-3A6F-7CDC-D083899F7B83]
    // </editor-fold> 
    /**
     * Setzt einen neuen Start-Zeitpunkt.
     *
     * @param   start
     * @throws  RemoteException
     */
    public void setStart(Timestamp start) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A8073EB5-5E30-F867-7FAF-3951A349EA19]
    // </editor-fold> 
    /**
     * Gibt den End-Zeitpunkt des {@link Kalendereintrag}s zurück.
     *
     * @return  Timestamp       ende
     * @throws  RemoteException
     */
    public Timestamp getEnde() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.D5B8CF68-F8D6-0264-CE44-CB5020F037C8]
    // </editor-fold> 
    /**
     * Setzt einen neuen End-Zeitpunkt.
     *
     * @param   ende
     * @throws  RemoteException
     */
    public void setEnde(Timestamp ende) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.0C2C9328-2234-C4AE-2047-27B7F0C4825B]
    // </editor-fold> 
    /**
     * Gibt den Titel des {@link Kalendereintrag}s zurück.
     *
     * @return  String          titel
     * @throws  RemoteException
     */
    public String getTitel() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.94B49AEB-8E46-94A6-9A0E-ECA0B3321353]
    // </editor-fold> 
    /**
     * Setzt einen neuen Titel.
     *
     * @param   titel
     * @throws  RemoteException
     */
    public void setTitel(String titel) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.CEE81B9B-66FA-A407-EBAF-DDE0BFC67339]
    // </editor-fold> 
    /**
     * Gibt den Ort des {@link Kalendereintrag}s zurück.
     *
     * @return  String          ort
     * @throws  RemoteException
     */
    public String getOrt() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.E0898790-F3F4-442C-5E21-20A7C5327A60]
    // </editor-fold> 
    /**
     * Setzt einen neuen Ort.
     *
     * @param   ort
     * @throws  RemoteException
     */
    public void setOrt(String ort) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.08138D18-6F3B-F3C4-3B26-34D9C5D9CE0C]
    // </editor-fold> 
    /**
     * Gibt die Beschreibung des {@link Kalendereintrag}s zurück.
     *
     * @return  String          beschreibung
     * @throws  RemoteException
     */
    public String getBeschreibung() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.1F0F4301-DD0D-BEF9-C28F-9A56F448406D]
    // </editor-fold> 
    /**
     * Setzt eine neue Beschreibung
     *
     * @param   beschreibung
     * @throws  RemoteException
     */
    public void setBeschreibung(String beschreibung) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.06F296A1-F1D4-AF20-250E-45D65432B89F]
    // </editor-fold> 
    /**
     * Gibt die ID der verknüpften {@link Alarm} zurück.
     *
     * @return  int             erinnerungId
     * @throws  RemoteException
     */
    public int getErinnerungId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.4AF1E703-8BD0-79E7-9679-AD7BFB2BC20D]
    // </editor-fold> 
    /**
     * Setzt eine neue {@link Alarm}-ID.
     *
     * @param   erinnerungId
     * @throws  RemoteException
     */
    public void setErinnerungId(int erinnerungId) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.4D5FF743-0172-1F9E-8B24-785A20566CC4]
    // </editor-fold> 
    /**
     * Gibt die ID der verknüpften {@link Kategorie} zurück.
     *
     * @return  int             kategorieId
     * @throws  RemoteException
     */
    public int getKategorieId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.24DF2C30-2A8A-CDE2-D471-8C816E707136]
    // </editor-fold> 
    /**
     * Setzt eine neue {@link Kategorie}-ID.
     *
     * @param   kategorieId
     * @throws  RemoteException
     */
    public void setKategorieId(int kategorieId) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.552FB071-8397-748B-1760-5326FB969350]
    // </editor-fold> 
    /**
     * Gibt die ID der {@link Person} zurück, die den {@link Alarm} erstellt
     * hat zurück.
     *
     * @return  int             erstellerId
     * @throws  RemoteException
     */
    public int getErstellerId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A09FA54E-F70E-C57B-85E8-5DB9C39A75C0]
    // </editor-fold> 
    /**
     * Setzt die {@link Person}-ID des Erstellers.
     *
     * @param   erstellerId
     * @throws  RemoteException
     */
    public void setErstellerId(int erstellerId) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.7ACBEEDD-E8B7-3F6C-F5FE-39763683C690]
    // </editor-fold> 
    /**
     * Gibt die ID des verknüpften {@link Kalender} zurück.
     *
     * @return  int             kalenderId
     * @throws  RemoteException
     */
    public int getKalenderId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.FC0D686C-3C27-D771-EC5C-E30F474CA361]
    // </editor-fold> 
    /**
     * Setzt eine neue {@link Kalender}-ID.
     *
     * @param   kalenderId
     * @throws  RemoteException
     */
    public void setKalenderId(int kalenderId) throws RemoteException;

    /**
     * Gibt einen eindeutigen Identifikations-String zu Anzeige in der GUI zurück.
     *
     * @return  String          IdentifikationsName
     * @throws  RemoteException
     */
    public String ermittleIdentifikationsName() throws RemoteException;

    /**
     * Gibt einen eindeutigen Identifikations-String zu Anzeige in der GUI zurück,
     * wenn der Kalendereintrag eine Wiederholung ist wird ein "W" angefügt,
     * wenn es ein Termin ist ein "T"
     *
     * @param   istWiederholung
     * @return  String          IdentifikationsName
     * @throws  RemoteException
     */
    public String ermittleIdentifikationsName(boolean istWiederholung) throws
            RemoteException;
}
